If nothing references the idle monitor, it can be finalized at GC,
causing it to have no effect. Worse, if the finalization happens at
wrong time, the pointer watcher can be permanently off, disabling the
message tray.
https://bugzilla.gnome.org/show_bug.cgi?id=691976
Name: 'PointerWatcher',
_init: function() {
- let idleMonitor = new GnomeDesktop.IdleMonitor();
- idleMonitor.connect('became-active', Lang.bind(this, this._onIdleMonitorBecameActive));
- idleMonitor.add_watch(IDLE_TIME, Lang.bind(this, this._onIdleMonitorBecameIdle));
- this._idle = idleMonitor.get_idletime() > IDLE_TIME;
+ this._idleMonitor = new GnomeDesktop.IdleMonitor();
+ this._idleMonitor.connect('became-active', Lang.bind(this, this._onIdleMonitorBecameActive));
+ this._idleMonitor.add_watch(IDLE_TIME, Lang.bind(this, this._onIdleMonitorBecameIdle));
+ this._idle = this._idleMonitor.get_idletime() > IDLE_TIME;
this._watches = [];
this.pointerX = null;
this.pointerY = null;